Modern mobile devices may include a variety of applications that depend on an accurate estimate of device location, such as a map application or location-based services (LBS) application. An integrated Global Positioning System (GPS) receiver and onboard sensors (e.g., accelerometers, gyroscopes) can be used to determine location and orientation of the device, and even provide a rough estimate of heading. To improve heading accuracy, a magnetometer can be included on the device. Conventional magnetometer calibration procedures may require the user to maneuver the device in a defined pattern to generate data that can be used to calibrate the magnetometer. Such manual calibration procedures are required to be performed each time the magnetometer error exceeds a threshold value. Additionally, the user may have to repeat the calibration procedure if performed incorrectly.